﻿using System;
using System.Windows;

namespace AdTech.Snap
{
    /// <summary>
    /// Defines an interface for the core of Snap.
    /// </summary>
    public interface ISnapFactory : IDrawableRectangle
    {
        /// <summary>
        /// Captures a new screenshot with the given coordinates.
        /// </summary>
        /// <param name="destination">The destination path.</param>
        /// <param name="position">The top left position of the rectangle to crop.</param>
        /// <param name="size">The size of rectangle to crop.</param>
        void CaptureScreen(string destination, Point position, Size size);
        /// <summary>
        /// Determines the destination for a screenshot.
        /// </summary>
        /// <returns>The configured default destination path if set or a user specified path through a SaveFileDialog.</returns>
        string SelectDestination();
    }
}
